Stateless এবং Stateful Widgets এর মধ্যে পার্থক্য

Mobile App Development - ফ্লাটার (Flutter) - Flutter এর বেসিক কাঠামো
372

Flutter এ Stateless Widget এবং Stateful Widget হলো দুটি প্রধান Widget টাইপ, যেগুলোর মধ্যে পার্থক্য মূলত স্টেট পরিচালনার উপরে ভিত্তি করে। Flutter অ্যাপে UI তৈরি করতে এই Widget গুলো ব্যবহৃত হয়। নিচে Stateless এবং Stateful Widget এর মধ্যে পার্থক্য এবং এদের বৈশিষ্ট্য আলোচনা করা হলো:

Stateless Widget:

  • সংজ্ঞা: Stateless Widget হলো এমন একটি Widget, যেটি কোনো পরিবর্তনশীল স্টেট ধারণ করে না। এটি একবারই তৈরি হয় এবং এর UI স্থির (immutable) থাকে।
  • বৈশিষ্ট্য:
    • এটি কোনো ডাইনামিক ডেটা বা স্টেট ম্যানেজ করে না।
    • একবার build() মেথড কল হলে, এর ভিউ অপরিবর্তিত থাকে যতক্ষণ না পর্যন্ত Widget ট্রীতে কোনো আপডেট হয়।
    • সাধারণত নির্দিষ্ট বা ফিক্সড UI উপাদান তৈরি করতে ব্যবহৃত হয়।
  • কোড উদাহরণ:
    • উপরে দেয়া কোডে, MyStatelessWidget একটি Stateless Widget, যা স্ক্রিনে একটি স্থির টেক্সট প্রদর্শন করে।
import 'package:flutter/material.dart';

class MyStatelessWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Stateless Widget Example'),
      ),
      body: Center(
        child: Text('This is a Stateless Widget'),
      ),
    );
  }
}

Stateful Widget:

  • সংজ্ঞা: Stateful Widget হলো এমন একটি Widget, যেটি পরিবর্তনশীল স্টেট ধারণ করে এবং যখনই এর স্টেট পরিবর্তিত হয়, তখন এটি পুনরায় রেন্ডার হয়।
  • বৈশিষ্ট্য:
    • এটি ডাইনামিক ডেটা বা স্টেট ম্যানেজ করতে পারে এবং স্টেট পরিবর্তনের উপর ভিত্তি করে UI আপডেট করে।
    • StatefulWidget দুটি অংশে বিভক্ত: StatefulWidget ক্লাস এবং এর সাথে সম্পর্কিত State ক্লাস।
    • setState() মেথড ব্যবহার করে Widget এর স্টেট পরিবর্তন করা যায় এবং নতুন স্টেট অনুযায়ী UI আপডেট হয়।
  • কোড উদাহরণ:
    • উপরে দেয়া কোডে, MyStatefulWidget একটি Stateful Widget, যা একটি কাউন্টার ধারণ করে। যখন বাটন চাপা হয়, তখন _incrementCounter মেথড কল হয়, এবং setState() মেথড ব্যবহার করে _counter মান বৃদ্ধি করে। এর ফলে, UI পুনরায় রেন্ডার হয় এবং আপডেটেড মান দেখানো হয়।
import 'package:flutter/material.dart';

class MyStatefulWidget extends StatefulWidget {
  @override
  _MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}

class _MyStatefulWidgetState extends State<MyStatefulWidget> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Stateful Widget Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Button pressed this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }
}

Stateless এবং Stateful Widget এর মধ্যে পার্থক্য:

বৈশিষ্ট্যStateless WidgetStateful Widget
স্টেট ম্যানেজমেন্টস্টেট ম্যানেজ করে না, স্থির থাকেপরিবর্তনশীল স্টেট ধারণ করতে পারে এবং আপডেট হয়
বিল্ড মেথডএকবার build() কল হয়ে স্থির UI তৈরি করেস্টেট পরিবর্তনের সময় build() পুনরায় কল হয়
ব্যবহারফিক্সড UI উপাদান যেমন টেক্সট, ইমেজ, বাটনডাইনামিক UI উপাদান যেমন কন্ট্রোল, ইনপুট ফিল্ড
প্রয়োজনীয়তাযদি UI পরিবর্তন না হয়, তখন Stateless Widget যথেষ্টযদি UI ডাইনামিক বা স্টেট-নির্ভর হয়, Stateful Widget প্রয়োজনীয়

কখন Stateless এবং Stateful Widget ব্যবহার করবেন:

  • Stateless Widget: যখন UI কন্টেন্ট স্থির থাকে এবং এর কোনো পরিবর্তন নেই, তখন Stateless Widget ব্যবহার করা হয়। উদাহরণস্বরূপ, যদি আপনি একটি নির্দিষ্ট টেক্সট বা ইমেজ প্রদর্শন করতে চান যা পরিবর্তিত হবে না।
  • Stateful Widget: যখন UI ডাইনামিক বা পরিবর্তনশীল তথ্যের উপর ভিত্তি করে তৈরি হয়, তখন Stateful Widget ব্যবহার করা হয়। উদাহরণস্বরূপ, যদি আপনি একটি ফর্ম বা কাউন্টার তৈরি করতে চান যা ব্যবহারকারীর ইন্টারেকশন অনুযায়ী পরিবর্তিত হয়।

এই পার্থক্যগুলো বুঝে Flutter ডেভেলপাররা কোন পরিস্থিতিতে কোন Widget ব্যবহার করবেন তা নির্ধারণ করতে পারেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...